﻿using CAD.DAL;
using CAD.DAL.cuentaBancoTableAdapters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CAD.BLL
{
    public class cuentabancoBLL
    {
        public static List<DTO.cuentaBanco> SelectByBanco(int idbanco)
        {
            cuentabanco_SelectByIdTableAdapter adapter = new cuentabanco_SelectByIdTableAdapter();
            cuentaBanco.cuentabanco_SelectByIdDataTable dtCliente = adapter.SelectByBanco(idbanco);
            List<DTO.cuentaBanco> LISTAobjCliente = new List<DTO.cuentaBanco>();
            foreach (CAD.DAL.cuentaBanco.cuentabanco_SelectByIdRow row in dtCliente)
            {
                DTO.cuentaBanco objCliente = rowToDto(row);
                LISTAobjCliente.Add(objCliente);
            }
            return LISTAobjCliente;
        }
        public static DTO.cuentaBanco SelectByID(int id)
        {
            cuentabanco_SelectByIdTableAdapter adapter = new cuentabanco_SelectByIdTableAdapter();
            CAD.DAL.cuentaBanco.cuentabanco_SelectByIdDataTable dtCliente = adapter.SelectByID(id);
            DTO.cuentaBanco objCliente;
            try
            {
                objCliente = rowToDto(dtCliente[0]);
            }
            catch (Exception)
            {
                objCliente = null;
            }
            return objCliente;
        }
        public static DTO.cuentaBanco SelectByCuentayBanco(string cuenta, int banco)
        {
            cuentabanco_SelectByIdTableAdapter adapter = new cuentabanco_SelectByIdTableAdapter();
            CAD.DAL.cuentaBanco.cuentabanco_SelectByIdDataTable dtCliente = adapter.SelectByCuentayBanco(cuenta,banco);
            DTO.cuentaBanco objCliente;
            try
            {
                objCliente = rowToDto(dtCliente[0]);
            }
            catch (Exception)
            {
                objCliente = null;
            }
            return objCliente;
        }
        private static DTO.cuentaBanco rowToDto(CAD.DAL.cuentaBanco.cuentabanco_SelectByIdRow row)
        {
            DTO.cuentaBanco objCliente = new DTO.cuentaBanco();
            objCliente.Estado = row.estado;
            objCliente.Id = row.id;
            objCliente.Idbanco = row.idbanco;
            objCliente.Monto = row.monto;
            objCliente.Nrocuenta = row.nrocuenta;
            return objCliente;
        }
        public static void updatemonto(int id,double monto)
        {
            cuentabanco_SelectByIdTableAdapter adapter = new cuentabanco_SelectByIdTableAdapter();
            adapter.updatemonto(id,monto);
        }
        public static int insertar(int idbanco, string nrocuenta, double montoinicial)
        {
            int? estudianteId = 0;
            cuentabanco_SelectByIdTableAdapter adapter = new cuentabanco_SelectByIdTableAdapter();
            adapter.insert(ref estudianteId,idbanco,nrocuenta,montoinicial,true);
            int id = (int)estudianteId;
            return id;
        }
        public static void updatebanconcuenta(int id, int idbanco, string nrocuenta)
        {
            cuentabanco_SelectByIdTableAdapter adapter = new cuentabanco_SelectByIdTableAdapter();
            adapter.updatebanconcuenta(id,idbanco,nrocuenta);
        }
    }
}
